for (var i = 0; i < 10; i++) {
    setTimeout(function () {
        console.log(i);
    })
    //setTimeout方法用于在指定的毫秒数后调用函数或计算表达式
}
// 输出十个 10
for (let j = 0; j < 10; j++) {
    setTimeout(function () {
        console.log(j);
    })
}
// 输出 0123456789

/*
变量 i 是用 var 声明的，在全局范围内有效，所以全局中只有一个变量 i, 每次循环时，setTimeout 定时器里面的 i 指的是全局变量 i ，而循环里的十个 setTimeout 是在循环结束后才执行，所以此时的 i 都是 10。
变量 j 是用 let 声明的，当前的 j 只在本轮循环中有效，每次循环的 j 其实都是一个新的变量，所以 setTimeout 定时器里面的 j 其实是不同的变量，即最后输出 12345。
*/